FIG. 1 shows a conventional communications network 1. Illustratively, the communications network 1 is the Internet, although the present invention is applicable to other networks. As shown, the communications network includes a wide are network (WAN) W. The WAN W may be formed by the Internet backbone. As shown, connected to the WAN W are multiple subnetworks a, b, c and d. These subnetworks may be stand alone computers, local area networks (LANs) or campus/enterprise networks. (A campus/enterprise networks is a collection of independent LANs at the same geographic campus, or enterprise location, that are commonly connected by a local backbone network.)
The communications network 1 includes multiple nodes, including router nodes or routers, hosts nodes or hosts and server nodes or servers. As shown, the WAN W includes multiple interconnected routers r1, r2, r3, r4, r5, r6, etc. (Illustratively, the router nodes r1-r6 of the WAN W are organized into separate backbone networks and access points as per the Internet backbone model. For sake of brevity, the specifics of the organization of the WAN W are omitted without loss of generality.) The connections may include any combination of wires, coaxial cables, optical fibers, packet and circuit switches, etc. The subnetwork a includes the host h1 connected to the router r1 of the WAN W. The subnetwork b includes the server s1, connected to the router r2 of the WAN W. The subnetwork c includes a router r7, connected to the router r5 of the WAN W, and multiple servers s2, s3 and s4 connected to the router r7 in a LAN configuration. Illustratively, the LAN is an Ethernet LAN, although the LAN could also be a token ring LAN, ATM LAN, etc. The subnetwork d includes a router r8, connected to the router r6 of the WAN W, and a server s5 and hosts h2 and h3 connected to the router r8 in a LAN configuration.
FIG. 2 shows a block diagram of a conventional host, router or server node 10. As shown, the node 10 may include a CPU or processor 11, a memory 12 (i.e., combination of main memory, disk memory, cache memory, etc.) and one or more I/O ports 13-1, 13-2, . . . , 13-N. Also shown are optional devices that are typically present in host nodes including: a graphics controller 14, a display monitor 15 and a manual input device 16. Their purpose is discussed in greater detail below. The devices 11, 12,13-1, . . . , 13-N, 14 and 16 may be interconnected by a bus 17 which transfers data and instructions between the various devices connected thereto. Each I/O port 13-1, . . . , 13-N may be connected by unshielded twisted pairs of wires, coaxial cables, optical fibers, switches, satellite transponders, etc., to one or more I/O ports of another node 10. The I/O ports 13-1, . . . , 13-N are for transmitting and receiving communicated data in the form of a bitstream that is organized into one or more packets (or cells). An exemplary packet 40 is shown in FIG. 3 having a header 42, which contains information for transferring the packet to its destination, and a payload 44 which carries communicated data or a communicated message to be conveyed to the destination. Packets received via the I/O ports 13-1, . . . , 13-N may be temporarily buffered in the memory 12. The processor 11 may process the packets, for instance, to determine to which node the packets should be transmitted (as discussed below). Under control of the processor 11, the packets are transmitted according to an order specified by the processor 11.
A host or server which originates, i.e., initially generates, a packet is called a source node, source host or source server and a host or server which terminates, i.e., ultimately receives, a packet is called a destination node, destination host or destination server. Communications is achieved by transferring a packet via a sequence of nodes including the source node, zero or more intermediary nodes (typically router nodes) and the destination node. This sequence is called a path. The packet is transmitted between each sequential pair of nodes on the path in a bucket brigade fashion. For instance, a packet may be communicated from the source node h1 to the router node r1, to the router node r3, to the router node r5, to the router node r7 and to the server s2.
According to the Internet Protocol (IP), each node of the (Internet) communications network 1 is provided with a unique address. In the above packet transfer, the (processor 11 of the) source node h1 generates a packet 40 and writes in the payload 44 a message to be conveyed to the destination node s2. The (processor 11 of the) source node h1 writes its IP address in a source address field of the packet header 42 and the IP address of the destination node s2 in a destination address of the field of the packet header 42. The host node h1 then transmits the packet to the router r1. (The processor 11 of the source node h1 transfers the packet to an I/O port 13-1 which transmits the packet.) The router r1 receives the packet (i.e., via one of its I/O ports 13-1.) The (processor 11 of the) router r1 uses at least one routing table stored thereat (in it memory 12) to determine the next node (i.e., the node r3) on the path to the destination node s2. The following Table 1 is an example of a routing table at the router r1:
TABLE 1 ______________________________________ Destination Address Next Node ______________________________________ `h1` "h1" ... ... `s2`, `s3`, `s4` "r3" ... ... `s5`, `h2`, `h3` "r3" ... ... `s1` "r2" ______________________________________
In Table 1,`h1`, `h2`, `h3`, `s1`, `s2`, `s3`, `s4` and `s5` are IP addresses of the nodes h1, h2, h3, s1, s2, s3, s4 and s5, respectively and "h1", "r2" and "r3" are indications of the nodes h1, r2, and r3, respectively, to which a received packet should be routed. These indications may for instance identify the I/O port 13 or telephone number/address to be used in transmitting the packet to the corresponding next node. The (processor 11 of the) router r1 uses the destination address in the destination address field of the packet header 42 as an index to retrieve a matching routing table entry, wherein a matching routing table entry contains, in its destination address field, the same IP address as the packet's destination IP address. The indicator stored in the next node field of the retrieved matching routing table entry indicates the next node to which the received packet must be transmitted. The (appropriate I/O port 13 of the) node r1 then transmits the packet to the indicated next node, in this case, the node r3. The nodes r3, r5 and r7 perform similar routing table look-ups using the destination address in the packet header in order to determine the next node to which the packet must be transmitted. Eventually the packet arrives at the destination node s2.
Returning to FIG. 2, a host node may also illustratively include a graphics controller 14, a display monitor 15 connected to the graphics controller 14, and a manual input device 16 such as a keyboard or keypad and pointer device (e.g., mouse, joy stick, track ball, track pad, pen stylus, etc.) Illustratively, the processor 11 and graphics controller 14 can execute steps of suitable software so as to enhance the communications capability of a host node. The processor 11, in conjunction with the graphics controller 14, can execute software which provide a graphical user interface that simplifies the communication process. R.O.C. Patent No. 250554 issued to IBM.TM. and R.O.C. Patent Nos. 237454 and 238450 issued to Microsoft.TM. Corp. illustrate general graphical user interfaces, but not for use in bidirectional packet communication. U.S. Pat. No. 5,347,295 teaches a pen writing operating system which organizes text and graphical data into books with tabs. The user can advance to a particular data entry or file by selecting an appropriate tab. U.S. Pat. No. 5,432,903 teaches a programming aid with graphical user interface. Specifically, the display of objects is performed using a "hierarchical" display that shows information pertinent to objects, including the functions defined thereon. A "dip" switch like tool bar is provided with different displayable attributes. By selecting different switches, different display filters are activated so as to display only certain attributes of each object at one time. U.S. Pat. No. 5,384,911 teaches a system for converting programs written for command line graphical user interfaces (DOS) to image oriented user interfaces (Windows). This patent provides a graphical user interface. U.S. Pat. No. 5,430,836 teaches a programming platform in which a common graphical user interface programming module is provided. This enables the user to reduce the amount of code that is generated. Lotus.TM. Corp.'s Organizer.TM. release 2 also provides an organizer which uses an image of a book in its graphical user interface to organize the information.
A specific use of the communications network 1 is to communicate on the World Wide Web (Web). The Web is used by hosts to search for information at various remote nodes, to retrieve information from remote nodes based on the search, or other criterion, and to display textual and graphical information retrieved from the remotely accessed nodes.
In addition, several products have been announced which combine Web communication with other products such as game consoles, computers, disc players, personal digital assistants, pagers, video telephones, set-top boxes and televisions. See Jon Zilber, Prime-Time Player, MACUSER, April 1996 (http.backslash..backslash.www.zdnet.com.backslash.macuser.backslash.mu.su b.-- 0496.backslash.features.backslash.feature.html), Oracle.TM., "The Network Computer (TM): Intelligent Clients for the Age of Network Computing," Jan. 23, 1996 (http.backslash..backslash.www.oracle.com.backslash.headlines.backslash.ht ml.backslash.ncwp.html#The Network Computer), iBoX.TM. advertisement, ViewCall.TM. advertisement and PowerTV.TM., "The PowerTV White Paper: Open-Platform Architecture for Interactive Digital Set-Top Boxes," (http.backslash..backslash.www.powertv.com.backslash.Product.backslash.Com plete.backslash.White.html). An important product is the "WebTV.TM." or combination of Web access devices with ordinary consumer televisions. Such Web access devices will consist of a modem or network interface (that is typically incorporated into a cable television set-top box), a basic processor capable of performing Internet access and a graphics generator capable of outputting the retrieved information in a format suitable for display on an ordinary consumer television. See the above noted PowerTV reference. Other important Web access devices include the Webputer.TM. (basic WebTV.TM. device that can also be expanded into a full computer), Webman.TM. (personal digital assistant with Web access via a cellular or wireless network) and Webkiosk.TM. (public use Web access terminal set up similar to an automated teller machine).
A software application executing on a host which enables entry of queries and retrieval/display of information originating at a remote node is called Web "browser" software. A software application executing on a server node which executes queries against a database stored therein, or which retrieves information for transmission to a requesting node is called Web "server" software. A number of companies provide Web Browser and Web server software such as Lycos.TM., Inc., Open Text.TM., Inc., Infoseek.TM. Corp., Architext Software.TM., America Online.TM., Inc., Yahoo|.TM. Corp., TradeWave.TM. Corp., University of Washington, Netscape.TM., Mosaic.TM., and Twinbridge.TM..
Generally speaking, all Web servers have an acronym or "domain name" for their Internet address which accords with the uniform resource locator (URL) protocol. A central committee called Internic controls the assignment of domain names to Web servers to ensure, among other things, uniqueness of domain names over the Internet. The domain names are nothing more than unique acronyms that can be translated to IP addresses. The user of a Web browser executing on a host node, e.g., the host h1, can enter a request to contact a specific remotely accessible server, e.g., the server s2, by typing in a textual communication command (using the manual input device) according to the URL protocol such as:
http:.backslash..backslash.www.domain name.entity type
wherein "http" identifies a transport protocol to be used in conjunction with the IP protocol, "www" stands for World Wide Web, "domain name" is the particular domain name specified by the user and "entity type" is either "mil" (military), "edu" (education), "gov" (government), "org" (organization), "net" (network) or "com" (commercial). The textual communication command specified above is often referred to as "a URL". In response, the host h1 executes one of a number of sequences of steps for communicating with the server node corresponding to the domain name. If the host h1 has available in the memory 12 a translation of the domain name to its corresponding IP address, the host h1 can communicate its packets directly with the server node to be contacted. The processor 11 of the host h1 translates the domain name to the IP address of the to-be-contacted server node. The processor 11 generates a packet and writes the IP address of the to-be-contacted server node in the destination address field. The host h1 then writes a message that requests to log on to the to-be-contacted server node, which message accords with the URL protocol.
Alternatively, if the host h1 does not have translation information available, the processor h1 may generate a packet and write in the destination address field of the packet the IP address of the host's h1 domain name server. The domain name server is typically a server maintained by the Internet access provider (a network subsumed within the communications network 1, including at least one router of the WAN W, such as the router r1, that connects the host h1 to the WAN W) for the host h1. (The IP address of the domain name server is preliminarily known to the host h1.) The host h1 then writes a request to retrieve the domain name to IP address translation of the to-be-contact server node. The I/O port 13-1 of the host h1 transmits the packet to its domain name server, e.g., the server s1. When the server s1 receives the packet from the host, the processor 11 of the server s1 consults a domain name to IP address translation table (stored in the memory 12). The server s1 transmits back to the host h1 the domain name to IP address translation of the to-be-contact server s2 in a packet. The host h1 receives the translation and can then generate a packet for direct transmission to the server s2.
The packet containing the request to log onto the server s2 propagates on a path in the above described fashion and arrives at the server s2. In accordance with the Web server software executing on the server s2, the processor 11 of the server s2 generates one or more message packets for return transmission to the host h1. Illustratively, the message packets include textual/graphical document information that is formatted according to the hypertext markup language or "HTML" format. The HTML format provides a universal, display monitor independent manner of describing the information so that the specifics regarding how to size/fit the text and images, etc. can be selected by each individual host depending on its display capabilities.
Illustratively, the host h1 receives the information bearing packets from the server s2. The processor 11 of the host h1 retrieves the information and interprets the HTML format thereof. Then, the graphics controller 14 displays the information on the display monitor 15 in an appropriate fashion.
Many HTML documents contain "hypertext." Hypertext is selectable text (of the information provided by the Web server s2) describing an information topic for which the Web server s2 stores additional information or for which the Web server s2 can provide the URL of another server that stores information on the topic. Typically, selectable hypertext is so indicated in a highlighted fashion within the body of information displayed on the display monitor screen so as to cue the user that the text corresponds to a hypertext. Illustratively, the user can select/activate a hypertext using a pointer device of the manual input device. In response to selecting a hypertext, the Web server software causes the processor 11 of the host h1 to execute a script (contained in HTML format in the information retrieved from the response packets initially returned from the Web server s2) that corresponds to the hypertext. Typically, the script causes the host h1 to either log onto another server node, or to transmit a command to the same node onto which the host is currently logged for purposes of retrieving the information corresponding to the text of the hypertext. (Herein, when a host node user selects a hypertext that causes the execution of a script, including transmission of one or more packets containing a command for accessing information at that same server node onto which the user is currently logged, the user is said to "execute" an HTML link. On the other hand, when the host node user enters a URL or selects a hypertext that causes a packet to be transmitted to a server node containing a request to log on to the server node, the user is said to "execute" a URL.) If execution of the hypertext results in execution of a URL, the host h1 logs off the current server node and executes the above-noted steps for logging onto the server node indicated by the script (as specified in the script associated with the hypertext). If execution of a hypertext results in execution of an HTML link, the host h1 writes the IP address of the same server node in the packet and one or more information retrieval commands, as specified in the script associate with the hypertext. The host h1 then transmits the packet bearing the command for retrieving the information associated with the hypertext. This packet propagates on a path to the specified server as described above. For example, suppose the selected hypertext executes an HTML link resulting in transmission of a packet to the same server s2 containing a command for retrieving information therefrom. The server s2 receives the packet and the Web server software executing thereon responds (causes the processor 11 of the Web server s2 to respond) to the packet by retrieving the corresponding information. The processor 11 of the Web server s2 generates a packet, writes this information (also in the HTML format) in the payload of a packet and the IP address of the host h1 in the header of the packet. The (I/O port 13-1 of the) Web server s2 then transmits the packet to the host h1. The packet propagates on a path to the host h1 as described above. The Web browser software executing on the host h1 retrieves (causes the processor 11 to retrieve) the information in the packet and display the information on the display monitor 15.
Note that when the host h1 initially executes a URL, thereby logging onto a server node, the server node typically transfers general information (sometimes called a "home page") which specifies sub-topics on which the server can provided additional information using HTML links. When an HTML link is executed by a host node, the server may provided additional information which itself includes additional HTML links for retrieving even more specific or related information from the server. In short, HTML links can be "nested" in a hierarchical fashion which typically progresses from more general information to more specific information provided by the server.
It is possible that the user does not know ahead of time the domain name of the Web server with which it wishes to communicate. Rather, the user may simply know a desired topic of information. Illustratively, the host h1 can contact a server, such as the server s1, which maintains a searchable index of domain names. Associated with each domain name are a number of key words or topics pertaining to information that can be retrieved from the Web server associated with the domain name. Using the manual input device, the user can enter search terms and execute a search. The Web browser responds (cause the processor 11 to respond) by transmitting a query packet to the server s1 with the search terms. In response to such a packet, the (processor 11 of the) server s1 searches the index and retrieves one or more domain names for which the index contains key words and topics that match the search terms specified in the received packet. The server s1 illustratively generates a packet and writes, in the destination address field of the packet header, the IP address of the host h1, and in the packet payload, the retrieved domain names. The server s1 then transmits the packet to the host h1. In response to receiving the packet, the Web server software causes the processor 11 and graphics controller 14 to display the retrieved domain names on the display monitor 15 for selection by the user. Each server s1 that can perform index searching in this fashion is referred to as a "gopher" server.
In addition to the above mentioned log on and searching capabilities noted above, URL also supports a file transfer protocol, called FTP, for transferring files, and a news group subscription protocol (e.g., Internet Group Management Protocol or IGMP). Both of these protocols are well known and are not reviewed herein. See U.S. Pat. No. 5,353,283; S. Deering, Multicast Routing in Internet Networks and Extended LANs, SIGCOMM, p.55 Aug. 16, 1988. Suffice it to say that news groups are multicast routing groups to which a host, e.g., the host h1, can subscribe. After subscribing to a news group, all messages transmitted by the host h1 to that specific news group are distributed to all member nodes of the news group in a multicast routing fashion. Likewise, the host h1 receives messages transmitted from other member nodes to the news group. As with domain names, each news group is provided with an identifying acronym. The user may, or may not, be familiar with the name of a news group with which he or she wishes to subscribe. The names of such news groups may be maintained at a gopher server in a keyword/topic searchable fashion.
FIG. 4 shows an image displayed on a display screen of a typical browser such as Netscape.TM. Navigator.TM.. A window 31 is provided in which information retrieved from a Web server may be displayed. Different selectable control button icons 33 are provided over the window 31 for initiating communication with a remote Web server or stopping communication with a Web server. Above the icons 33 is a title bar 35 with selectable drop-down menus.
A user looking for an unknown Web server that provides a certain topic of information, or an unknown gopher server or news group pertinent to a particular topic, typically proceeds as follows. The user conducts a search using the gopher server and selected key words. This results in retrieving domain names of potential Web servers, news groups, gopher servers, etc. that contain the information in which the user is interested. The URLs of such retrieved domain names may be displayed in list form on a display screen of the display monitor 15 for selection by the user. The user then attempts to log on or subscribe to selected ones of the servers or news groups retrieved during the search. In the course of logging onto a server, the user may continue to search by executing hypertexts in an effort to obtain the information of interest. As noted above, such hypertext executions may identify more HTML links, URLs, Web server and gopher server domain names, news groups, etc.
Consider that the user may log on to many servers and execute many URLs and HTML links in the course of performing any one search. In the course of performing a search, or at a later time, a user may wish to re-log on and/or re-execute selected URLs or HTML links. Many conventional Web browsers provide a historical listing of the URLs and HTML links used by the user during a session. The user can display the historical list, scroll through the list to the desired location and select the appropriate URL or HTML link. The Web browser responds by transmitting appropriate message packets to corresponding Web servers to re-obtain the information in which the user is interested. However, such historical URL and HTML link lists are not saved between sessions. Some Web browsers provide the user the ability to record favorite URLs and HTML links (and their corresponding IP addresses and accessing messages) for use in subsequent sessions. Other Web browsers record retrieved information. However, the recording of information is in a strict sequential order in which it was retrieved.
There are a number of problems associated with the conventional browsers. First, the historical record of URLs and HTML links is a sequential, flat list in the strict order of use by the user (including duplications of URLs and HTML links, if such URLs and HTML links are used multiple times during a session). Since the user may often re-use URLs and HTML links in a single session, the list can quickly loose any sense of ordering or hierarchy of search as to the mutual inter-relationship of different URLs and HTML links of the list. Simply stated, most servers organize their HTML links in a hierarchical fashion from more general topics to more specific topics. However, the user might not execute the HTML links in this hierarchical order but rather may skip around, especially if the user searches for information on more than one unrelated topic. Second, although favorite URLs and HTML links can be recorded by the user, the graphical user interface typically requires that the user execute multiple "point-and-click" steps using the pointer device in order to re-establish communications with such a favorite or frequently accessed node. For instance, the user may have to click on a "favorite places" icon to first display the favorite places. The user must then search through the listed favorite places to select the appropriate URL or HTML link. No mechanism is provided for displaying icons of multiple favorite places in a selectable fashion so as to enable easy one-step retrieval of information corresponding to such favorite URLs/HTML links. Third, neither the favorite nor historical recording of utilized URLs/HTML links indicates whether the URL or HTML entries are URL, HTML link, gopher index, news group, etc. Fourth, no index ordering is provided to the user for reviewing the retrieved information. Rather the user must scroll thorough the information which is displayed in the same order in which it was retrieved.
It is an object of the present invention to overcome the disadvantages of the prior art.